<?php
/**
 * Manager.php class file.
 * @author wudg <544038230@qq.com>
 * @date 2020/12/31- 下午12:10
 */

namespace common\drivers\queue;

use Yii;
class Manager
{
    /**
     * 单例模式
     * @var null
     */
    protected static $_static = null;

    /**
     * 工厂模式
     * @param string $queue_name 队列名称
     * @return RedisQueue
     */
    public static function factory($queue_name = null)
    {

        $queue = new RedisQueue($queue_name);
        return clone $queue;
    }

    /**
     * 单例模式
     * @param  [type] $redis      [description]
     * @param  [type] $queue_name [description]
     * @return [type]             [description]
     */
    public static function instance($queue_name = null)
    {
        if (self::$_static == null) {
            self::$_static = self::factory($queue_name);
        }

        return self::$_static;
    }
}